1. Field of the Invention
The present invention relates to computer-implemented methods, systems and network architectures for synchronizing mobile computing devices with a remote database.
2. Description of the Related Art
Corporations and other large entities often deploy a large number of salespersons over a large geographical territory to sell their products and/or services. Traditionally, such salespersons have relied upon a number of paper-based calendaring, scheduling and address management systems. With the advent of low power portable electronic devices, many sales agents have come to rely upon a variety of mobile computing devices to implement the functionality of such paper-based systems, as well as to track leads, opportunities, sales and commissions. One example of such mobile computing devices is the laptop computer. As shown in FIG. 1, such laptop computers (shown in FIG. 1 as personal computers (PCs) 110, 112, 114, 116) may be loosely coupled to the corporate sales database 120 via a network 118 (including Local Area Network (LAN) and/or the Internet, for example) via a TCP/IP connection 122 (for example), as is well known in the art. Such an architecture may be implemented to allow the plurality of computers 110, 112, 114, 116 to asynchronously access the enterprise database 120. The plurality of computers 110, 112, 114, 116 may access the remote database 120 to download read-only information therefrom, such as price lists, for example. In addition, the computers 110, 112, 114, 116 may exchange information with the enterprise database 120, both to download information from the database 120 and upload information thereto. Specifically, the computers 110, 112, 114, 116 may each store a subset of the database 120 and may synchronize their databases with the enterprise database 120. In so doing, the computers 110, 112, 114, 116 may add, delete and/or modify information stored within the enterprise database 120 when performing the synchronization procedure. However, such an architecture wherein a potentially large number computers access the database 120 at the same time may undesirably degrade the performance (responsiveness) of the enterprise database 120. Moreover, the need to physically connect the computers 110, 112, 114, 116 to the network 118 through the LAN or a Wide Area Network (WAN) 122 limits the salespersons"" mobility and ability to dynamically respond to changing conditions while on sales calls, while in the field.
Despite shrinking footprints and decreasing weight and increasing performance, however, laptop computers remain burdensome, slow and necessitate a substantial period of time from power-on to boot up to a fully functional state. The advent of so-called personal digital assistants (PDAs) and other communication and information processing devices has greatly changed this landscape. For example, the Palm Pilot(copyright), manufactured by Palm, Inc. (of which both wired and wireless versions exist) is a portable digital assistant that may be used to manage personal and business information. Typically, such devices have limited memory and data processing capabilities, at least relative to desktop and laptop computers. The trend in such devices is toward greater connectivity, to enable the data stored thereon to be synchronized with that stored on another computer and to enable the user to wirelessly access networks, such as the Internet. As such, the Palm Pilot(copyright) and other so-called thin clients (such as devices running the Palm OS(trademark) operating system form Palm, Inc. or the WinCE operating System from Microsoft Corporation, for example) are transitioning from their original and somewhat limited role as organizers to their new and emerging role as integral extensions of the corporate environment.
To make effective use of such mobile devices in a sales or service environment, the data stored thereon must seamlessly integrate with the data stored on the corporate database. As shown in FIG. 2, mobile devices such as shown at 124 traditionally rely upon a docking station or xe2x80x9ccradlexe2x80x9d 126 connected to the host computer 110 via a (serial, for example) cable 128. The data stored in the mobile device 124 and the data stored in the laptop 110 may then be synchronized through the cable 128, as is known. For example, synchronization may be carried out by invoking a xe2x80x9cHotSyncxe2x80x9d process, as disclosed in U.S. Pat. No. 6,000,000 to Hawkins et al., entitled xe2x80x9cExtendible method and apparatus for synchronizing multiple files on two different computer systemsxe2x80x9d, the disclosure of which is incorporated herein in its entirety.
FIG. 3 shows the steps typically necessary to synchronize a mobile device 124 with a remote database 120. The first step S1 calls for the user to connect the mobile device 124 to the computer 110, either directly or with a cradle, as shown at 126 in FIG. 2. The data residing on the mobile device 124 may then be synchronized with the data residing on the laptop 110 through the cable 128, as shown at S2. A connection between the laptop 110 and the remote enterprise database 120 via the network 118 must then be established (if not already established), as shown at S3. Step S4 calls for the laptop 110 and the enterprise database 120 to bi-directionally synchronize, in order for each to update the other with any information that may have changed since the last synchronization session. Any new information from the enterprise database 120 may then be sent to the mobile device 124, as shown by the bi-directional arrow joining steps S2 and S1.
Such a procedure is cumbersome and necessitates a four-step process each time the user wishes to synchronize with the remote enterprise database 120. Moreover, the disadvantages inherent in the architecture shown in FIG. 1 are still present in the architecture of FIG. 2; namely, the need to employ a slow-starting and cumbersome laptop computer 110 to update the data on lightweight, always-on mobile device such as the Palm Pilot(copyright) or WinCE(copyright) devices. Moreover, the user must connect the mobile device 124 to the host computer 110 before synchronizing. In addition, there must be a one-to-one correspondence between the mobile devices 124 and the host computer 110. Indeed, each mobile device 124 must be connected to a separate host computer 110 each time synchronization is carried out. Lastly, allowing a great many mobile devices 124 to directly access the enterprise database 120 may degrade its performance and responsiveness.
There has been a long felt need, therefore, for simplified methods, systems and network architectures allowing a large number of potentially geographically disseminated and disconnected users to synchronize the data stored on their mobile devices with data stored within a remote database. Such methods, systems and network architectures should allow a variety of such mobile devices to asynchronously synchronize with a remote database to send information thereto and receive updated information therefrom in a format native to each mobile device. Such methods, systems and network architectures should allow a fine grained control over the data that is downloaded to each mobile device. Preferably, such methods, systems and network architectures should allow real time synchronization between remote databases and mobile devices and should be freely scalable.
In accordance with the above-described objects and those that will be mentioned and will become apparent below, a computer system for synchronizing a mobile device with a remote enterprise database includes a replication database. The replication database is mapped to and maintained as a subset image of the remote enterprise database through a bi-directional replication process over a computer network. A mobile device gateway server is coupled to the replication database. The mobile device gateway includes a concentrator, which is configured to selectively receive replication data from the replication database, transform the received replication data into a format native to the mobile device and to selectively send the received and transformed replication data to the mobile device. The concentrator is also configured to receive mobile device data from the mobile device, transform and to send the received mobile device data to the replication database. In this manner, the mobile device gateway server acts as a middle tier or bridge between an enterprise database and one or more mobile devices, such as a pager, a wireless portable digital assistant (such as a Palm(copyright) or WinCE(copyright) device, for example), a Web-enabled telephone and/or any network-enabled wired or wireless thin client.
According to further embodiments, the replication database may be incorporated within the mobile device gateway server or may be external thereto and coupled to the mobile device gateway server by the computer network. The computer network may include the Internet. A plurality of mobile device gateway servers may be provided, each of the plurality being maintained as a subset image of the enterprise database through the bi-directional replication process. The plurality of mobile device gateway servers may be distributed over a geographical area. For example, each of the plurality of mobile device gateway servers may be geographically distributed according to a volume of data to be handled thereby. The mobile device gateway server may be further configured to filter the replication data prior to transforming and sending the replication data to the mobile device. The mobile device gateway server may be configured to selectively limit the replication data sent to the mobile device. The mobile device gateway server may be configured to be accessible over the computer network to enable a selection of the replication data to be sent to the mobile device. The replication database may store a snapshot of each table of replication data to be sent to the mobile device. The replication database may further be configured to share the snapshot among a plurality of mobile devices and to send the shared snapshot to the plurality of mobile devices. The concentrator may be configured to communicate with the mobile device over a wireless channel, a wired channel, a serial interface and/or a TCP/IP interface. The computer network may include a TCP/IP computer network. The mobile device gateway server may be further configured to store one or more conflict resolution rules to resolve conflicts in the replication data, the mobile device data and data stored on the enterprise database.
According to another embodiment thereof, the present invention is a computer-implemented method of synchronizing a mobile computing device to a remote enterprise database, comprising the steps of a) establishing a connection over a computer network between the mobile computing device and a mobile device gateway server, the mobile device gateway server being coupled to a replication database that is maintained as a subset image of the enterprise database, the mobile device gateway server including a concentrator configured to interface with the mobile computing device over the computer network; b) selectively sending replication data from the replication database to the concentrator; c) selectively sending the replication data from the concentrator to the mobile computing device over the computer network; d) selectively sending mobile device data from the mobile computing device to the concentrator over the computer network, and e) sending the mobile device data to the replication database. Step a) may be carried out by establishing a TCI/IP network connection between the mobile computing device and the mobile device gateway server. The replication database may be maintained as a subset image of the enterprise database through a bi-directional replication process. One or both of the steps b) and c) may include the step of filtering the replication data to reduce an amount of replication data that is sent to the mobile computing device and/or to send only selected replication data to the mobile computing device. The replication data sent in steps b) and c) may include snapshots of tables from the replication database. Steps of sharing one or more snapshots among a plurality of mobile computing devices and sending the shared snapshot to each of the plurality of mobile computing devices may also be carried out. A step of evaluating one or more conflict resolution rules may be carried out when a conflict arises between the replication data and the mobile computing device data.
The present invention may also be viewed as a computer network, including an enterprise database; a replication database distinct and remote from the enterprise database, the replication database being mapped to and maintained as a subset image of the enterprise database through a bi-directional replication process; a mobile computing device; a mobile device gateway server, the mobile device gateway server being coupled to the replication database, and including a concentrator, the concentrator being configured to selectively receive replication data from the replication database, transform the received replication data into a format native to the mobile device and to selectively send the received and transformed replication data to the mobile device, the concentrator also being configured to receive mobile device data from the mobile device, transform and to send the received mobile device data to the replication database.